import numpy as np
from keras.datasets import mnist  #直接从keras里面应用数据集
from keras.utils import np_utils  #keras 里面用到的一个 np 的工具包
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD  #优化函数;
from keras.models import load_model

#载入数据
(x_train,y_train),(x_test,y_test)=mnist.load_data() #分为测试集和训练集


# (6000,28,28) -> (6000,784)

x_train=x_train.reshape(x_train.shape[0],-1)/255.0 #-1表示是自动判断,/225是表示归一化。
x_test=x_test.reshape(x_test.shape[0],784)/255.0#行数是 x_train.shape[0]行。

#标签转换成 one hot 格式
y_train=np_utils.to_categorical(y_train,num_classes=10)#专门用来转格式的包
y_test=np_utils.to_categorical(y_test,num_classes=10)


#载入模型
model=load_model("model.h5")

#载入的模型是已经训练好的，直接进行评估就行。

loss,accuracy=model.evaluate(x_test,y_test)
print(loss)
print(accuracy)

print("再次训练评估模型")
json_string=model.to_json()
print(json_string)
#对于载入的模型，可以继续进行训练;
model.fit(x_train,y_train,batch_size=64,epochs=2)
loss,accuracy=model.evaluate(x_test,y_test)

print(loss)
print(accuracy)